package com.kingyun.gpsinspection.purificationservice.facade.service.jsm.reportinfoItem;

import com.kingyun.gpsinspection.purificationservice.facade.model.jsm.*;

import java.util.List;
import java.util.Map;

/**
 * @Author 卢曼成
 * @Description 汇报内容与数据项对应关系接口类
 * @CreateDateTime 2017-03-25 13:07
 **/
public interface JsmReportinfoItemService {

    /**
     * 根据ID删除
     *
     * @param reportinfoId
     * @return
     */
    int deleteByPrimaryKey(Long reportinfoId);

    /**
     * 添加
     *
     * @param record
     * @return
     */
    int insert(ReportinfoItem record);

    /**
     * 非空添加
     *
     * @param record
     * @return
     */
    int insertSelective(ReportinfoItem record);

    /**
     * 根据ID查询
     *
     * @param reportinfoId
     * @return
     */
    ReportinfoItem selectByPrimaryKey(Long reportinfoId);

    /**
     * 非空修改
     *
     * @param record
     * @return
     */
    int updateByPrimaryKeySelective(ReportinfoItem record);

    /**
     * 修改
     *
     * @param record
     * @return
     */
    int updateByPrimaryKey(ReportinfoItem record);

    /**
     * @param record
     * @return List<ReportinfoItem>
     * @Author 卢曼成
     * @Description 根据条件查询集合
     * @CreateDateTime 2017/3/24 19:38
     **/
    List<ReportinfoItem> selectByParamList(ReportinfoItem record);

    /**
     * @param record
     * @return List<ReportinfoItem>
     * @Author 卢曼成
     * @Description 根据条件查询集合带有子项name名称
     * @CreateDateTime 2017/3/24 19:38
     **/
    List<ReportinfoItem> selectByParamItemList(ReportinfoItem record);

    /**
     * @param record
     * @return List<ReportinfoItem>
     * @Author 卢曼成
     * @Description 根据条件分页查询
     * @CreateDateTime 2017/3/24 19:38
     **/
    List<ReportinfoItem> queryList(ReportinfoItem record);

    /**
     * @param record
     * @return List<ReportinfoItem>
     * @Author 卢曼成
     * @Description 根据条件分页查询总条数
     * @CreateDateTime 2017/3/24 19:38
     **/
    int queryCount(ReportinfoItem record);

    /**
     * @param map
     * @param record
     * @Author 卢曼成
     * @Description 根据条件分页查询总条数
     * @CreateDateTime 2017/3/24 19:38
     **/
    void pageList(Map<String, Object> map, ReportinfoItem record);


    /**
     * 实体特性关联数据项
     * @param entityPropertyMaps
     * @return
     */
    Map<String,Object> dataItemaSsociateFeatures(List<EntityPropertyMap> entityPropertyMaps) throws Exception;

    /**
     * @param entityPro
     * 实体类型特性-新增插入
     */
    int insertPropertyMap(EntityPro entityPro, EmployeeVo employee) throws Exception;


    /**
     * 得到和数据项已经关联的特性
     * @param params
     * @return
     */
    Integer getCountOfDataItemFeature(Map<String, Object> params);

}
